var url = "../RRHH_ORGANIGRAMA_CONTROLLER";
var dia = 0, ano, mes;
var nodoSimple, nodoDetalle;
var arregloCheck;
var errores = "";
var diagram;
var backgroundActual;
var listaNodo;
var worker = new Worker("../js/SIS/SIS_CARGA_IMAGEN.js");
var iworker = 0;
var urlfotoperfil = "";
var elementopenfile;
var meses = ["ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"];
var usuarioselect = 0;
var tipofile;
var numtelf = 0;
var numcuent = 0;
var isfungible = false;
var isactivo = false;
var idactividad = 0;
var tdselect;
var aviertotc = false;
var textoSeleccionado = "";
var nodoreferencia = null;
var nodoreferencia2 = null;
var desc23;
var aviertodato = false;
var catactivo = false;
var imagenPosision = 0;
var cantidadimagenes = 0;
var t = "";
var aviertodocs = false;
var card;
$(document).ready(function() {
    centrarPopUp();
    evento2();
    evento();
    $.post(url, {proceso: "listaCargo"}, function(responsetext) {
        var json = $.parseJSON(responsetext);
        listaNodo = json.lista;
        mes = json.mes;
        ano = json.ano;
        init()
        diagram.nodeTemplate = nodoDetalle;
        diagram.model = new go.TreeModel(listaNodo);

        for (var i = 0; i < listaNodo.length; i++) {
            var dep = "";
            if (listaNodo[i].isGroup == true) {
                continue;
            }
            if (listaNodo[i].dpto.length > 0) {
                dep = "6:" + listaNodo[i].dpto
            }
            if (listaNodo[i].reg.length > 0) {
                dep += ",5:" + listaNodo[i].reg
            }
            if (listaNodo[i].suc.length > 0) {
                dep += ",4:" + listaNodo[i].suc
            }
            $("#procontcargo").append("<div class='centrado' onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
        }
        worker = new Worker("../js/SIS/SIS_CARGA_IMAGEN.js");
        iworker = 0;
        card = buscarEmpleados();
        if(card.length>0)
        worker.postMessage({ci: card[iworker].ci, foto: card[iworker].foto});
        worker.addEventListener('message', function(e) {
            json = $.parseJSON(e.data);
            var node = diagram.findPartForKey(card[iworker].key);
            var data=node.data;
            var modelo = diagram.model;
            var lista=data.listaUsuario;
            lista[card[iworker].id].foto=json.foto;
            
            modelo.startTransaction("modified");
                modelo.setDataProperty(data, "listaUsuario", lista);
                if(card[iworker].es===0){
                    modelo.setDataProperty(data, "foto",json.foto);
                }
            modelo.commitTransaction("modified");
            iworker++;
            if (card.length > iworker)
                worker.postMessage({ci: card[iworker].ci, foto: card[iworker].foto});
        }, false);
    });

});
function buscarEmpleados() {
    var resul = [];
    for (i = 0; i < listaNodo.length; i++) {
        var usuarios = listaNodo[i].listaUsuario;
        for (j = 0; j < usuarios.length; j++) {
            if (j == 0) {
                resul.push({
                    key: listaNodo[i].key,
                    id: j,
                    ci: usuarios[j].ci,
                    foto: usuarios[j].foto,
                    es: 0
                });
            } else {
                resul.push({
                    ci: usuarios[j].ci,
                    foto: usuarios[j].foto,
                    es: 1
                });
            }

        }
    }
    return resul;
}
$(window).resize(function() {
    centrarPopUp();
});
function evento2() {
    $("#popUpbackGround").click(function() {
        $("#nodoPopUp").css("display", "none");
        $("#popUpbackGround").css("display", "none");
        $("#botonespopUp").css("display", "none");
        $("#panelCreacionPersonal").css("display", "none");
        limpiarPopUp();
    });
    $("input[name=position]").change(function() {
        generarImagen();
    });
    $("select[name=departamento]").change(function() {
        departamento($(this), 0);
    });
    $("select[name=regional]").change(function() {
        var seleccionado = $(this).find("option:selected");
        $("input[name=regional]").val(seleccionado.val());
        $("select[name=sucursal]").css("display", "block");
        $('#sucursal').css("display", "block");
        $.post(url, {proceso: "buscarSucursales", Idregional: seleccionado.val()}, function(responsetext) {
            $("select[name=sucursal]").html(responsetext);
        });
        if (seleccionado.val() == '1') {
            $("select[name=sucursal]").html('');
            $('#sucursal').css("display", "none");
            $("select[name=sucursal]").css("display", "none");
            $("input[name=regional]").val("");
            $("input[name=sucursal]").val("");
        }
    });
    $("select[name=sucursal]").change(function() {
        var seleccionado = $(this).find("option:selected");
        if (seleccionado.val() == '0') {
            $("input[name=sucursal]").val("");
            return;
        }
    });
}
function cambioNodo(elemente) {
    if ($(elemente).text() == "Resumen") {
        $(elemente).text("Detalle")
        diagram.nodeTemplate = nodoSimple;
    } else {
        $(elemente).text("Resumen");
        diagram.nodeTemplate = nodoDetalle;
    }
}
function abrirPopUp(e, obj) {
    var contextmenu = obj.part;
    var data = contextmenu.data;
    if (data.Cargo == "Sin Cargo") {
        $("#tituloPanel").text("Crear Cargo");
        $("#panelCreacionCargo").css("display", "block");
        $("#panelSeleccionAction").css("display", "none");
        $("#botonespopUp").css("display", "block");
        document.getElementById("nodoPopUp").style.display = "block";
        document.getElementById("popUpbackGround").style.display = "block";
        seleccionarDepRegSuc();
        return;
    }
    if (data.suspendido == 1) {
        $("#susEmp").text("Habilitar Empleado");
    } else {
        $("#susEmp").text("Suspender Empleado");
    }
    $("#botonespopUp").css("display", "none");
    $("#panelCreacionCargo").css("display", "none");
    $("#panelSeleccionAction").css("display", "block");
    $("#tituloPanel").text("");
    $.post(url, {proceso: "buscarDependiente"}, function(responsetext) {
        var json = $.parseJSON(responsetext);
        $("#lista-datos").html(json.lista_datos);
        $("#lista-docs").html(json.lista_docs);
        document.getElementById("nodoPopUp").style.display = "block";
        document.getElementById("popUpbackGround").style.display = "block";
    });
}
function seleccionarDepRegSuc() {
    var node = diagram.selection.first();
    if (nodoreferencia != null) {
        node = nodoreferencia;
    }
    $("select[name=departamento" + textoSeleccionado + "]").attr("disable", false);
    $("select[name=sucursal" + textoSeleccionado + "]").attr("disable", false);
    $("select[name=regional" + textoSeleccionado + "]").attr("disable", false);
    var data = node.data;
    if (data.idsucursal != "0.0") {
        $("select[name=departamento" + textoSeleccionado + "] option[value=" + parseInt(data.iddep) + "]").attr("selected", "selected");
        $("select[name=departamento" + textoSeleccionado + "]").attr("disabled", "disabled");
        departamento($("select[name=departamento" + textoSeleccionado + "]"), data.regional, data.idsucursal);
        return;
    }
    if (data.regional != "0.0") {
        $("select[name=departamento" + textoSeleccionado + "] option[value=" + parseInt(data.iddep) + "]").attr("selected", "selected");
        $("select[name=departamento" + textoSeleccionado + "]").attr("disabled", "disabled");
        departamento($("select[name=departamento" + textoSeleccionado + "]"), data.regional, 0);
        return;
    }
    if (data.iddep != "0.0") {
        $("select[name=departamento" + textoSeleccionado + "] option[value=" + parseInt(data.iddep) + "]").attr("selected", "selected");
        $("select[name=departamento" + textoSeleccionado + "]").attr("disabled", "disabled");
        var dataactual = diagram.model.findNodeDataForKey(node.data.parent);
        if (dataactual != null) {
            if (dataactual.iddep === "0.0" && dataactual.idsucursal === "0.0" && dataactual.regional === "0.0") {
                $("select[name=departamento" + textoSeleccionado + "]").removeAttr("disabled");
            }
        }
        departamento($("select[name=departamento" + textoSeleccionado + "]"), 0, 0);
        return;
    }
    if (data.iddep == "0.0" && data.regional == "0.0" && data.idsucursal == "0.0") {
        $("select[name=departamento" + textoSeleccionado + "] option[value=0]").attr("selected", "selected");
        $("select[name=departamento" + textoSeleccionado + "]").attr("disabled", "disabled");
        $.post(url, {proceso: "buscarDependiente"}, function(responsetext) {
            var dataactual = diagram.model.findNodeDataForKey(node.data.parent);
            if (dataactual != null) {
                if (dataactual.iddep === "0.0" && dataactual.idsucursal === "0.0" && dataactual.regional === "0.0") {
                    $("select[name=departamento" + textoSeleccionado + "]").removeAttr("disabled");
                }
            }
            var json = $.parseJSON(responsetext);
            $("#lista-datos").html(json.lista_datos);
            $("#lista-docs").html(json.lista_docs);
        });
    }
}
function departamento(select, regional, sucursal) {
    var seleccionado = select.find("option:selected");
    if (seleccionado.val() === '0') {
        $("select[name=regional]").html('');
        $('#regional').css("display", "none");
        $("select[name=regional]").css("display", "none");
        $("input[name=departamento]").val("");
        $("input[name=regional]").val("");
        $("select[name=sucursal]").html('');
        $('#sucursal').css("display", "none");
        $("select[name=sucursal]").css("display", "none");
        $("input[name=regional]").val("");
        $("input[name=sucursal]").val("");
        return;
    }

    $("input[name=departamento" + textoSeleccionado + "]").val(seleccionado.val());
    $("select[name=regional" + textoSeleccionado + "]").css("display", "block");
    $('#regional' + textoSeleccionado).css("display", "block");
    $.post(url, {proceso: "buscarRegional", Iddepartamento: seleccionado.val()}, function(responsetext) {
        $("select[name=regional" + textoSeleccionado + "]").html(responsetext);
        $.post(url, {proceso: "buscarDependiente"}, function(responsetext) {
            var json = $.parseJSON(responsetext);
            $("#lista-datos").html(json.lista_datos);
            $("#lista-docs").html(json.lista_docs);
            var node = diagram.selection.first();
            var data = node.data;
            if (nodoreferencia == null && data.Cargo != "Sin Cargo") {

                for (i = 0; i < arregloCheck.length; i++) {
                    $("#panelCreacionCargo input[value=" + parseInt(arregloCheck[i]) + "]").attr("checked", true);
                }
            }
            if (regional != 0) {
                var seleccionado = $("select[name=regional" + textoSeleccionado + "] option[value=" + parseInt(regional) + "]");
                seleccionado.attr("selected", "selected");
                $("select[name=regional" + textoSeleccionado + "]").attr("disabled", "disabled");
                $("input[name=regional]").val(seleccionado.val());
                $("select[name=sucursal" + textoSeleccionado + "]").css("display", "block");
                $('#sucursal' + textoSeleccionado).css("display", "block");
                $.post(url, {proceso: "buscarSucursales", Idregional: regional}, function(responsetext) {
                    $("select[name=sucursal" + textoSeleccionado + "]").html(responsetext);
                    if (sucursal != 0) {
                        $("select[name=sucursal" + textoSeleccionado + "] option[value=" + parseInt(sucursal) + "]").attr("selected", "selected");
                        $("select[name=sucursal" + textoSeleccionado + "]").removeAttr("disabled");
                    } else {
                        $("select[name=sucursal" + textoSeleccionado + "]").removeAttr("disabled");
                    }
                    if (textoSeleccionado === "1") {
                        $("select[name=sucursal" + textoSeleccionado + "]").attr("disbled", true);
                    }
                    if (nodoreferencia != null && textoSeleccionado != "1") {
                        textoSeleccionado = "1";
                        nodoreferencia = diagram.selection.first();
                        seleccionarDepRegSuc();
                    } else {
                        textoSeleccionado = "";
                        nodoreferencia = null;
                    }

                });
            } else {
                $("select[name=sucursal" + textoSeleccionado + "]").css("display", "none");
                $('#sucursal' + textoSeleccionado).css("display", "none");
                $("select[name=regional" + textoSeleccionado + "]").attr("disabled", false);
                if (textoSeleccionado == "1") {
                    $('#regional' + textoSeleccionado).css("display", "none");
                    $("select[name=regional" + textoSeleccionado + "]").css("display", "none");
                }
                if (nodoreferencia != null && textoSeleccionado != "1") {
                    textoSeleccionado = "1";
                    nodoreferencia = diagram.selection.first();
                    seleccionarDepRegSuc();
                } else {
                    textoSeleccionado = "";
                    nodoreferencia = null;
                }

            }
        });
    });
}
function cambioPanel(ele, tipo) {
    var node = diagram.selection.first();
    var data = node.data;
    var modelo = diagram.model;
    if (tipo === 0) {
        $.post(url, {proceso: "obtenerCargo", id: data.key}, function(responsetext) {
            var json = $.parseJSON(responsetext);
            $("input[name=descripcionNuevo]").val(json.desc);
            $("input[name=perfil]").val(json.desc);
            $("select[name=tccargo] option[value=" + json.tipo + "] ").attr("selected", true);
            if (typeof data.staff != "undefined" && data.staff != null) {
                $("#staff").attr("checked", true);
            }
            arregloCheck = json.datos;
            $("#panelCreacionCargo").css("display", "block")
            $("#panelSeleccionAction").slideUp("slow", function() {
                $("#tituloPanel").text($(ele).text());
                $("#botonespopUp").css("display", "block");
                $("select[name=departamento]").attr("disabled", "disabled");
                $("select[name=sucursal]").attr("disabled", "disabled");
                $("select[name=regional]").attr("disabled", "disabled");
                seleccionarDepRegSuc();
            });
        });
    }
    if (tipo === 1) {
        $.post(url, {proceso: "cargarPerfiles", idcargo: data.key}, function(responsetext) {
            $('#panelAsignacionPerfiles').html(responsetext);
            dragAndDrop();
            $("#panelAsignacionPerfiles").css("display", "block");
            $("#panelSeleccionAction").slideUp("slow", function() {
                $("#tituloPanel").text($(ele).text());
                $("#botonespopUp").css("display", "none");
                contenedroHeight($('#panelAsignacionPerfiles'));
            });
        });
    }
    if (tipo === 2) {
        $("input[name=fecha_fin]").val("INDETERMINADO");
        $("#panelCreacionPersonal").css("display", "block");
        $("#GuardarModificar").text("Contratar");
        $("#botonespopUp").css("display", "block");
        $("img[name=verdocs]").css("display", "none");
        $("#panelSeleccionAction").slideUp("slow", function() {
            $("#tituloPanel").text($(ele).text());
            $("input[name=salario]").removeAttr("disabled");
            $("#prolistausuario2").css("display", "none");
            $("input[name=proceso]").val("guardarusuario");
        });
    }
    if (tipo === 3) {
        $.post(url, {proceso: "cargarHorario", idcargo: data.key}, function(responsetext) {
            if (responsetext === "false") {
                alert("error de servidor vuelva a intentar");
                return;
            }
            $('#panelAsignacionHorario').html(responsetext);
            dragAndDrop();
            $("#panelAsignacionHorario").css("display", "block");
            $("#panelSeleccionAction").slideUp("slow", function() {
                $("#tituloPanel").text($(ele).text());
                $("#botonespopUp").css("display", "none");
                contenedroHeight($('#panelAsignacionHorario'));
            });
        });
    }
    if (tipo === 4) {
        $("#fechaCalendario").html(meses[mes] + " DEL " + ano);
        $.post(url, {proceso: "cargarCalendario", idcargo: data.key, ano: ano, mes: mes}, function(responsetext) {
            $('#tablacalendario').html(responsetext);
            dragAndDrop();
            eventoDiaCalentadio();
            $("#panelCalendario").css("display", "block");
            $("#panelSeleccionAction").slideUp("slow", function() {
                $("#tituloPanel").text($(ele).text());
                $("#botonespopUp").css("display", "none");
            });
        });
    }
    if (tipo === 5) {
        if (data.idPersona != "0" && typeof (data.idPersona) != "undefined") {
            alert("El cargo no se puede eliminar posee al empleado " + data.nombre);
            return;
        }
        for (var i = 0; i < listaNodo.length; i++) {
            if (listaNodo[i].parent == data.key) {
                alert("El cargo tiene dependencia no se puede eliminar");
                return;
            }
        }
        $.post(url, {proceso: "eliminarCargo", cargo: data.key}, function(responsetext) {
            if (responsetext == "true") {
                diagram.commandHandler.deleteSelection()
                alert("Se elimino correctamente el cargo " + data.Cargo);
                cancelPopUp();
            } else {
                alert("No se pudo eliminar intente nuevamente");
            }
        });
    }
    if (tipo === 6) {
        if (data.idPersona === "0") {
            alert("Este Cargo no posee ningun empleado");
            return;
        }
        $("#listausuarioinc2").html("");
        for (i = 0; i < data.listaUsuario.length; i++) {
            $("#listausuarioinc2").append("<option value='" + data.listaUsuario[i].idPersona + "'>" + data.listaUsuario[i].nombre + "</option>");
        }
        $("#suspender").css("display", "block");
    }
    if (tipo === 7) {
        if (data.idPersona === "0") {
            alert("Este Cargo no posee ningun empleado");
            return;
        }
        var date = new Date();
        var mes = (date.getMonth() + 1) + "";
        mes = mes.length === 1 ? "0" + mes : mes;
        var dia = date.getDate() + "";
        dia = dia.length === 1 ? "0" + dia : dia;
        var año = date.getFullYear();
        var fecha = dia + "/" + mes + "/" + año;
        $("#pop1_titulo").text("RETIRAR AL EMPLEADO " + data.nombre);
        $("input[name=pop1_fecha]").val(fecha);
        $("#listausuarioinc3").html("");
        for (i = 0; i < data.listaUsuario.length; i++) {
            $("#listausuarioinc3").append("<option value='" + data.listaUsuario[i].idPersona + "'>" + data.listaUsuario[i].nombre + "</option>");
        }
        $("#pop1").css("display", "block");
    }
    if (tipo === 8) {
        if (data.idPersona == "0") {
            alert("Este Cargo no posee ningun empleado");
            return;
        }
        for (i = 0; i < data.listaUsuario.length; i++) {
            $("#prolistausuario").append("<option value='" + data.listaUsuario[i].idPersona + "'>" + data.listaUsuario[i].nombre + "</option>");
        }
        $("#pronombre").text(data.nombre);
        $("#prosueldo").val(data.salario);
        $("#procargo").text(data.Cargo);
        $("#fotou").html("<img src='" + data.foto + "' style='width:100%; height:100%;'>");
        $("#proprofesion").text(data.profesion);
        $("#panelPromocionUsuario").css("display", "block");
        $("#panelSeleccionAction").slideUp("slow", function() {
            $("#tituloPanel").text($(ele).text());
            $("#botonespopUp").css("display", "none");
        });
    }
    if (tipo === 10) {
        if (typeof (data.idPersona) == "undefined" || data.idPersona == 0) {
            alert("El cargo no posee empleado");
            return;
        }
        $("#prolistausuario2").html("");
        for (i = 0; i < data.listaUsuario.length; i++) {
            $("#prolistausuario2").append("<option value='" + data.listaUsuario[i].idPersona + "' data-foto='" + data.listaUsuario[i].foto + "' data-ci='" + data.listaUsuario[i].ci + "'>" + data.listaUsuario[i].nombre + "</option>");
        }
        $("#prolistausuario2").css("display", "block")
        var option = $("#prolistausuario2").find("option:selected");
        $("input[name=proceso]").val("modificarempleado");
        cargarkardex(option.data("ci"));
    }
    if (tipo == 11) {
        if (typeof (data.idPersona) == "undefined" || data.idPersona == 0) {
            alert("El cargo no posee empleado");
            return;
        }
        $("#listausuarioinc").html("");
        for (i = 0; i < data.listaUsuario.length; i++) {
            $("#listausuarioinc").append("<option value='" + data.listaUsuario[i].idPersona + "'>" + data.listaUsuario[i].nombre + "</option>");
        }
        $("#salarioviejo").val(data.salario);
        $("#aumentosalarial").css("display", "block");
    }
}
function contenedroHeight(parent) {
    var c1 = $(parent).find(".c1").height();
    var c2 = $(parent).find(".c2").height();
    if (c1 > c2) {
        $(".c2").css("height", c1 + "px");
    } else {
        $(".c1").css("height", c2 + "px");
    }
}
function busquedaAvanzada(ele) {
    var elem = $(ele).parent();
    if (elem.data("tipo") == 1) {
        $(elem).css("border", "solid");
        $(elem).animate({
            height: 130
        }, 500, function() {
            elem.data("tipo", 2);
            $(ele).attr("src", "../img/iconos/ocultar.png");
        });
    } else {
        $(elem).animate({
            height: 30
        }, 500, function() {
            elem.data("tipo", 1);
            $(elem).css("border", "none");
            $(ele).attr("src", "../img/iconos/mostrar.png");
            $("#procontcargo").html("");
            var valor = elem.find("input").val();
            for (var i = 0; i < listaNodo.length; i++) {
                if (listaNodo[i].Cargo == "Sin Cargo")
                    continue;
                if (listaNodo[i].Cargo.toUpperCase().search(valor.toUpperCase()) > -1) {
                    var dep = "";
                    if (listaNodo[i].dpto.length > 0) {
                        dep = "6:" + listaNodo[i].dpto
                    }
                    if (listaNodo[i].reg.length > 0) {
                        dep += ",5:" + listaNodo[i].reg
                    }
                    if (listaNodo[i].suc.length > 0) {
                        dep += ",4:" + listaNodo[i].suc
                    }
                    if (parseInt($("#prodpto option:selected").val()) == 0 && parseInt($("#proreg option:selected").val()) == 0) {
                        $("#procontcargo").append("<div class='centrado' onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
                    } else {
                        if (parseInt($("#prodpto option:selected").val()) == parseInt(listaNodo[i].iddep) && parseInt($("#proreg option:selected").val()) == parseInt(listaNodo[i].regional)) {
                            $("#procontcargo").append("<div onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" class='centrado' style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
                            continue;
                        }
                        if (parseInt($("#prodpto option:selected").val()) == parseInt(listaNodo[i].iddep) && parseInt($("#proreg option:selected").val()) == 0) {
                            $("#procontcargo").append("<div onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" class='centrado' style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
                            continue;
                        }
                    }

                }
            }
        });
    }
}
function centrarPopUp() {
    $("#nodoPopUp").css({
        left: (($(window).width() - $('#nodoPopUp').outerWidth()) / 2),
        top: (($(window).height() - $('#nodoPopUp').outerHeight()) / 2) - 62
    });
    $("#popupImprimir").css({
        left: (($(window).width() - $('#popupImprimir').outerWidth()) / 2),
        top: (($(window).height() - $('#popupImprimir').outerHeight()) / 2) - 62
    });
    $("#asignacionHorarioActividad").css({
        left: (($(window).width() - $('#asignacionHorarioActividad').outerWidth()) / 2),
        top: (($(window).height() - $('#asignacionHorarioActividad').outerHeight()) / 2) - 100
    });
    $("#popupAddActividad").css({
        left: ($('#nodoPopUp').position().left + $('#nodoPopUp').outerWidth()) - $("#popupAddActividad").outerWidth() - 10,
        top: ($('#nodoPopUp').position().top + $('#popupAddActividad').outerWidth() / 2) + 25
    });
}
function imprimirExportar(nro) {
    var tipo = $("input[name=rimp]:checked").data("val");
    if (nro == 1) {
        $('.print:eq(' + imagenPosision + ')').printArea(
                {
                    popHt: 600
                    , popWd: 800
                    , popX: 0
                    , popY: 0
                });
    }
    if (nro == 2) {
        var download = document.createElement('a');
        if (tipo == 1) {
            download.href = $('.print:eq(' + imagenPosision + ') img').attr("src");
            download.download = 'Organigrama.png';
            download.click();
            fireEvent(download, 'click');
        } else {
            var db = diagram.documentBounds.copy();
            var boundswidth = db.width;
            var boundsheight = db.height;
            var p = db.position.copy();
            var doc = new jsPDF("landscape");
            var aumentox = (1000 * 100) / 70;
            var aumentoy = (700 * 100) / 70;
            for (var i = 0; i < boundsheight; i += aumentoy) {
                for (var j = 0; j < boundswidth; j += aumentox) {
                    if (j + i != 0) {
                        doc.addPage();
                    }
                    var img = diagram.makeImage({
                        scale: 0.7,
                        position: new go.Point(j, i),
                        size: new go.Size(1000, 700)
                    });
                    doc.addImage(img.src, 'png', 10, 10, 275, 190, 'organigrama' + (i + j));
                }
            }
            doc.save('Organigrama.pdf');
        }
    }
}
function fireEvent(obj, evt) {
    var fireOnThis = obj;
    if (document.createEvent) {
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent(evt, true, false);
        fireOnThis.dispatchEvent(evObj);
    } else if (document.createEventObject) {
        var evObj = document.createEventObject();
        fireOnThis.fireEvent('on' + evt, evObj);
    }
}
function SiguienteAnterior(evento) {
    if (evento == 1) {
        $("#antimg").removeAttr("disabled");
        imagenPosision++;
        if (imagenPosision == cantidadimagenes) {
            $("#sgtimg").attr("disabled", true);
        }
    } else {
        $("#sgtimg").removeAttr("disabled");
        if (imagenPosision == 1) {
            $("#antimg").attr("disabled", true);
        }
        imagenPosision--;
    }
    $("#vistaprevia").css("margin-left", imagenPosision * -829)
}
function nuevocatDato() {
    var desc = $("#txtcatDato").val();
    $("#txtcatDato").val("");
    $.post(url, {proceso: "nuebacatdato", desc: desc}, function(responsetext) {
        $("select[name=tipodato]").append(responsetext);
        $("select[name=tipodoc]").append(responsetext);
        $("#categoriadatos").css("display", "none");
    });
}
function canceldato() {
    $("#txtcatDato").val("");
    $("#categoriadatos").css("display", "none");
}
function buscarCargo() {
    var valor = $("#protextcargo").val();
    $("#procontcargo").html("");
    for (var i = 0; i < listaNodo.length; i++) {
        if (listaNodo[i].Cargo.toUpperCase().search(valor.toUpperCase()) > -1) {
            var dep = "";
            if (listaNodo[i].isGroup == true) {
                continue;
            }
            if (listaNodo[i].Cargo == "Sin Cargo")
                continue;
            if (listaNodo[i].dpto.length > 0) {
                dep = "6:" + listaNodo[i].dpto
            }
            if (listaNodo[i].reg.length > 0) {
                dep += ",5:" + listaNodo[i].reg
            }
            if (listaNodo[i].suc.length > 0) {
                dep += ",4:" + listaNodo[i].suc
            }

            $("#procontcargo").append("<div class='centrado' onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
        }
    }
}
function seleccionarcargo(ele, id, desc, salario, dep) {
    $("#pronuevocargo").data("id", id);
    desc23 = dep;
    $("#pronuevocargo").text(desc);
}
function addcategoriadato() {
    if (catactivo == false)
    {
        $("#categoriadatos").css("display", "block");
        catactivo = true;
    }
    else
    {
        $("#categoriadatos").css("display", "none");
        catactivo = false;
    }
}
function promoverEmpleado() {
    if ($("#pronuevocargo").text() === "-") {
        alert("Seleccione nuevo cargo");
        return;
    }
    if ($("#prosueldo").val() === "") {
        alert("Indique el nuevo sueldo");
        return;
    }
    var node = diagram.findPartForKey($("#pronuevocargo").data("id"));
    var dataCargoNuevo = node.data;
    var modelo = diagram.model;
    var node1 = diagram.selection.first();
    var dataCargoanterior = node1.data;
    if (dataCargoNuevo.key === dataCargoanterior.key) {
        alert("Selecione un cargo nuevo");
        return;
    }
    var index = usuarioselect;
    $.post(url, {proceso: "promoverPersona", desc: desc23, id: dataCargoanterior.listaUsuario[index].idPersona, sueldo: $("#prosueldo").val(), cargo: $("#pronuevocargo").data("id"), nombre: dataCargoanterior.nombre, cargonom: $("#pronuevocargo").text()}, function(responsetext) {
        if (responsetext === "true") {
            alert("El empleado " + dataCargoanterior.listaUsuario[index].nombre + " fue promovido");
            modelo.startTransaction("modified");
            var listausuario = dataCargoNuevo.listaUsuario;
            listausuario.push({
                ci: dataCargoanterior.listaUsuario[index].ci,
                foto: dataCargoanterior.listaUsuario[index].foto,
                idPersona: dataCargoanterior.listaUsuario[index].idPersona,
                profesion: dataCargoanterior.listaUsuario[index].profesion,
                salario: dataCargoanterior.listaUsuario[index].salario,
                suspendido: dataCargoanterior.listaUsuario[index].suspendido,
                nombre: dataCargoanterior.listaUsuario[index].nombre
            });
            if (dataCargoNuevo.listaUsuario.length === 1) {
                modelo.startTransaction("modified");
                modelo.setDataProperty(dataCargoNuevo, " profesion", dataCargoanterior.listaUsuario[index].profesion);
                modelo.setDataProperty(dataCargoNuevo, "foto", dataCargoanterior.listaUsuario[index].foto);
                modelo.setDataProperty(dataCargoNuevo, "idPersona", dataCargoanterior.listaUsuario[index].idPersona);
                modelo.setDataProperty(dataCargoNuevo, "nombre", dataCargoanterior.listaUsuario[index].nombre);
                modelo.setDataProperty(dataCargoNuevo, "salario", $("#prosueldo").val());
                modelo.setDataProperty(dataCargoNuevo, "listaUsuario", listausuario);
                modelo.setDataProperty(dataCargoNuevo, "cantusu", 1);
                modelo.commitTransaction("modified");
            } else {
                modelo.startTransaction("modified");
                modelo.setDataProperty(dataCargoNuevo, "listaUsuario", listausuario);
                modelo.setDataProperty(dataCargoNuevo, "cantusu", listausuario.length);
                modelo.commitTransaction("modified");
            }
            listausuario = dataCargoanterior.listaUsuario;
            if (dataCargoanterior.listaUsuario.length === 1) {
                modelo.startTransaction("modified");
                modelo.setDataProperty(dataCargoanterior, " profesion", "N/A");
                modelo.setDataProperty(dataCargoanterior, "foto", "null");
                modelo.setDataProperty(dataCargoanterior, "idPersona", "0");
                modelo.setDataProperty(dataCargoanterior, "nombre", "Sin Empleado");
                modelo.setDataProperty(dataCargoanterior, "salario", 0);
                modelo.setDataProperty(dataCargoanterior, "listaUsuario", []);
                modelo.setDataProperty(dataCargoanterior, "cantusu", 0);
                modelo.commitTransaction("modified");
            } else {
                modelo.startTransaction("modified");
                listausuario.splice(index, 1);
                modelo.setDataProperty(dataCargoanterior, " profesion", listausuario[0].profesion);
                modelo.setDataProperty(dataCargoanterior, "foto", listausuario[0].foto);
                modelo.setDataProperty(dataCargoanterior, "idPersona", listausuario[0].idPersona);
                modelo.setDataProperty(dataCargoanterior, "nombre", listausuario[0].nombre);
                modelo.setDataProperty(dataCargoanterior, "salario", listausuario[0].salario);
                modelo.setDataProperty(dataCargoanterior, "cantusu", listausuario.length);
                modelo.setDataProperty(dataCargoanterior, "listaUsuario", listausuario);
                modelo.commitTransaction("modified");
            }
            cancelPopUp();
        } else {
            alert("Error en el servidor intente nuevamente");
        }
    });
}
function exportarImagen() {
    document.getElementById("popUpbackGround").style.display = "block";
    document.getElementById("popupImprimir").style.display = "block";
    generarImagen();
}
function mayWorkFor(node1, node2) {
    if (!(node1 instanceof go.Node))
        return false;
    if (node1 === node2)
        return false;
    if (node2.isInTreeOf(node1))
        return false;
    return true;
}
function mouseEnter(e, obj) {
    /* var shape = obj.findObject("SHAPE");
     shape.fill = "#6DAB80";
     shape.stroke = "#A6E6A1";
     var text = obj.findObject("TEXT");
     text.stroke = "white";*/
}
function mouseLeave(e, obj) {
    /*  var shape = obj.findObject("SHAPE");
     // Return the Shape's fill and stroke to the defaults
     shape.fill = obj.data.color;
     shape.stroke = null;
     // Return the TextBlock's stroke to its default
     var text = obj.findObject("TEXT");
     text.stroke = "black";*/
}
function MostrarTCargo() {
    if (aviertotc == true)
    {
        $("#btnTipo").css("display", "none");
        $("#txtTipo").css("display", "none");
        aviertotc = false;
    }
    else
    {
        $("#btnTipo").css("display", "inline");
        $("#txtTipo").css("display", "inline");
        aviertotc = true;
    }
}
function nuevoTipo() {
    $.post(url, {proceso: "insertarTipo", desc: $("#txtTipo").val()}, function(responsetext) {
        $("select[name=tccargo]").append(responsetext);
        $("#btnTipo").css("display", "none");
        $("#txtTipo").css("display", "none");
        $("#txtTipo").val("");
        aviertotc = false;
    });
}
function MostrarDato(ele) {
    if (aviertodato == true)
    {
        $("#divdatos").slideUp("slow", function() {
            aviertodato = false;
            $(ele).html("(+)");
        });
    }
    else
    {
        $("#divdatos").slideDown("slow", function() {
            aviertodato = true;
            $(ele).html("(-)");
        });
    }
}
function cambiousuario(elem) {
    var option = $(elem).find("option:selected");
    cargarkardex(option.data("ci"));
}
function nuevoDato() {
    $("#divdatos").slideUp("slow", function() {
        $("#divdatos").prev().prev().html("(+)");
        var desc = $("#txtDato").val();
        var tipo = $("select[name=tipodato] option:selected").val();
        $.post(url, {proceso: "insertarDato", desc: desc, idtipo: tipo}, function(responsetext) {
            $("#lista-datos").append("<li><span>" + $("#txtDato").val() + ":</span><input type='checkbox' value='" + responsetext + "'/><span onclick='eliminardato(" + responsetext + ",this);'>(X)</span></li>");
            var nom = $("select[name=tipodato] option:selected").text();
            var aux = "";
            if ($("div[text=" + nom + "]").length == 0) {
                aux = "<div class='negrillaenter' onclick=\"abrirDatos(this)\">" + nom + "</div><div style='display: none;'>";
                $("#datosextra").append(aux + "<div><input type='text' name='" + responsetext + "'  placeholder='" + $("#txtDato").val() + "'/><br></div></div>");
            } else {
                $("div[text=" + nom + "]").next().append("<div><input type='text' name='" + responsetext + "'  placeholder='" + $("#txtDato").val() + "'/><br></div>");
            }
            $("#divdatos2").css("display", "none");
            $("#txtDato").val("");
            aviertodato = false;
        });
    });
}
function MostrarDocs(ele) {
    if (aviertodocs == true)
    {
        $("#divdatos2").slideUp("slow", function() {
            aviertodocs = false;
            $(ele).html("(+)");
        });
    }
    else
    {
        $("#divdatos2").slideDown("slow", function() {
            aviertodocs = true;
            $(ele).html("(-)");
        });
    }
}
function nuevoDocs() {
    $("#divdatos2").slideUp("slow", function() {
        $("#divdatos2").prev().prev().html("(+)");
        var tipo = $("select[name=tipodoc] option:selected").val();
        var obligar = $("input[name=fechaVencimiento]").attr("checked");
        obligar = typeof (obligar) == "undefined" ? 1 : 0;
        $.post(url, {proceso: "insertarDocs", desc: $("#txtDocs").val(), idtipo: tipo, obligar: obligar}, function(responsetext) {
            $("#lista-docs").append("<li><span>" + $("#txtDocs").val() + ":</span><input type='checkbox' value='" + responsetext + "'/><span onclick='eliminardato(" + responsetext + ",this);'>(X)</span></li>");
            var te = "";
            if (obligar == 0) {
                te = "<input id='dp" + responsetext + "' class='chico fecha hasDatepicker' type='text' name='" + responsetext + "_o'>";
            }
            var nom = $("select[name=tipodoc] option:selected").text();
            var aux = "";
            if ($("div[text=" + nom + "]").length == 0) {
                aux = "<div class='negrillaenter' onclick=\"abrirDatos(this)\">" + nom + "</div><div style='display: none;'>";
                $("#datosextra").append(aux + "<div><span>" + $("#txtDocs").val() + "</span><input type='file' style='width: 90px' name='" + responsetext + "'>" + te + "<br></div></div>");
            } else {
                $("div[text=" + nom + "]").next().append("<div><span>" + $("#txtDocs").val() + "</span><input type='file' style='width: 90px' name='" + responsetext + "'>" + te + "<br></div>");
            }
            $("#divdatos2").css("display", "none");
            $("#txtDocs").val("");
            aviertodocs = false;
        });
    });
}
function generarImagen() {
    var width = 0;
    var height = 0;
    imagenPosision = 0;
    cantidadimagenes = 0;
    var posicionhoja = $("input[name=position]:checked").data("val");
    switch ($("#tipohoja option:selected").val()) {
        case "1":
            if (posicionhoja == 1) {
                width = 612;
                height = 792;
            } else {
                height = 612;
                width = 792;
            }

            break;
        case "2":
            width = 0;
            height = 0;
            break;
        case "3":
            width = 4961;
            height = 7016;
            break;
        case "4":
            width = 3508;
            height = 4961;
            break;
        case "5":
            width = 2480;
            height = 3508;
            break;
    }
    var imgDiv = $('#vistaprevia');
    imgDiv.html("");
    var db = diagram.documentBounds.copy();
    var boundswidth = db.width;
    var boundsheight = db.height;
    var imgWidth = width;
    var escala = parseInt($("span[name=porcentajeescala]").text());
    var imgHeight = height;
    var p = db.position.copy();
    var tamaño = 0;
    var aumentox = (imgWidth * 100) / escala;
    var aumentoy = (imgHeight * 100) / escala;
    for (var i = 0; i < boundsheight; i += aumentoy) {
        for (var j = 0; j < boundswidth; j += aumentox) {
            var img = diagram.makeImage({
                scale: escala / 100,
                position: new go.Point(p.x + j, p.y + i),
                size: new go.Size(imgWidth, imgHeight)
            });
            cantidadimagenes++;
            imgDiv.append("<div style='display: inline-block; height: 454px; width: 825px; overflow: auto;'><div class='print' style='border: thin dashed;padding:5px; text-align: center;  width: " + width + "px; height: " + height + "px; '><img src='" + img.src + "' /></div></div>");
            tamaño += 825;
        }

    }
    imgDiv.css("width", tamaño + "px");
    imgDiv.find("img").draggable();
}
function eliminardato(id, span) {
    $.post(url, {proceso: "eliminarDato", id: id}, function(responsetext) {
        if (responsetext == "false") {
            alert("No se puede eliminar, revise dependencia");
            return;
        }
        $(span).parent().remove();
        $("#datosextra").find("input[name=" + id + "]").parent().remove();
    });
}
function cancelPopUp() {
    limpiarPopUp();
    document.getElementById("nodoPopUp").style.display = "none";
    document.getElementById("popUpbackGround").style.display = "none";
    document.getElementById("cambioReferencia").style.display = "none";
}
function cambiosalario(t) {
    var node = diagram.selection.first();
    var data = node.data;
    var modelo = diagram.model;
    if (t === 1) {
        var idpersona = $("#listausuarioinc option:selected").val();
        var index = $("#listausuarioinc option:selected").index();
        var incremento = $("#salarionuevo").val();
        if (incremento === "" || incremento < 1) {
            alert("No se ha incrementado el sueldo");
            return;
        }
        var viejo = parseFloat($("#salarioviejo").val());
        $.post(url, {proceso: "incrementosalarial", persona: idpersona, incremento: incremento, nombre: $("#listausuarioinc option:selected").text()}, function(responsetext) {
            if (responsetext == "true") {
                alert("Al empleado " + $("#listausuarioinc option:selected").text() + " se le incremento el salrio en " + incremento);
                diagram.startTransaction("incremento salarial");
                if (index == 0) {
                    modelo.setDataProperty(data, "salario", (parseFloat(viejo) + parseFloat(incremento)));
                }
                data.listaUsuario[index].salario = (parseFloat(viejo) + parseFloat(incremento))
                modelo.setDataProperty(data, "listaUsuario", data.listaUsuario);
                diagram.commitTransaction("incremento salarial");
                $("#aumentosalarial").css("display", "none");
            } else {
                alert("Error del servidor intente nuevamente");
            }
            $("#salarioviejo").val("");
            $("#salarionuevo").val("");
        });
    } else {
        $("#aumentosalarial").css("display", "none");
    }
    if (t == 3) {
        var index = $("#listausuarioinc2 option:selected").index();
        $.post(url, {proceso: "suspenderempleado", id: data.listaUsuario[index].idPersona, suspendido: data.listaUsuario[index].suspendido}, function(responsetext) {
            var list = data.listaUsuario;
            if (data.listaUsuario[index].suspendido == "1") {
                alert("El empleado " + data.nombre + " fue Habilitado");
                list[index].suspendido = 0;
                diagram.startTransaction("usuario desbloqueado");
                modelo.setDataProperty(data, "listaUsuario", list);
                diagram.commitTransaction("usuario desbloqueado");
            } else {
                alert("El empleado " + data.nombre + " fue suspendido")
                list[index].suspendido = 1;
                diagram.startTransaction("usuario bloqueado");
                modelo.setDataProperty(data, "listaUsuario", list);
                diagram.commitTransaction("usuario bloqueado");
            }
            var block = 1;
            for (i = 0; i < list.length; i++) {
                if (list[i].suspendido == 0) {
                    block = 0;
                    break;
                }
            }
            if (block == 1) {
                $("#susEmp").html("Habilitar Empleado");
            }
            diagram.startTransaction("usuario desbloqueado");
            modelo.setDataProperty(data, "suspendido", block);
            diagram.commitTransaction("usuario desbloqueado");
        });
        $("#suspender").css("display", "none");
    }
    $("#aumentosalarial").css("display", "none");
    $("#suspender").css("display", "none");
}
function limpiarPopUp() {
    errores = "";
    t = "";
    $("#procontcargo").html("");
    for (var i = 0; i < listaNodo.length; i++) {
        if (listaNodo[i].isGroup == true) {
            continue;
        }
        if (listaNodo[i].Cargo == "Sin Cargo")
            continue;
        var dep = "";
        if (typeof (listaNodo[i].dpto) != "undefined" && listaNodo[i].dpto.length > 0) {
            dep = "6:" + listaNodo[i].dpto
        }
        if (typeof (listaNodo[i].reg) != "undefined" && listaNodo[i].reg.length > 0) {
            dep += ",5:" + listaNodo[i].reg
        }
        if (typeof (listaNodo[i].suc) != "undefined" && listaNodo[i].suc.length > 0) {
            dep += ",4:" + listaNodo[i].suc
        }
        $("#procontcargo").append("<div class='centrado' onclick=\"seleccionarcargo(this," + listaNodo[i].key + ",'" + listaNodo[i].Cargo + "'," + listaNodo[i].salario + ",'" + dep + "')\" style='margin:5px; border: thin solid; padding: 5px; width: 173px; display: inline-block;'><span class='negrillaenter'>" + listaNodo[i].Cargo + "</span><span>" + listaNodo[i].dpto + " - " + listaNodo[i].reg + "</span></div>");
    }
    document.getElementById("popupImprimir").style.display = "none";
    numcuent = 0;
    numtelf = 0;
    urlfotoperfil = "";
    $("input[name=pop1_motivo]").val("");
    $("input[name=pop1_observacion]").val("");
    $("#pop1").css("display", "none");
    $("input[name=estado]").val(0);
    $("input[name=descripcionNuevo]").css("background", "#6598AE");
    $("img[name=verdocs]").data("tipo", "");
    $("#staff").removeAttr("checked");
    $("#aumentosalarial").css("display", "none");
    $("#suspender").css("display", "none");
    $("#salarioviejo").val("");
    $("#salarionuevo").val("");
    $("img[name=verdocs]").css("display", "none");
    $("#fotoEmp").attr("src", "../img/imagen3.jpg");
    $("#prolistausuario").html("");
    $("#pronuevocargo").data("id", "0");
    $("#prosueldo").val(0);
    $("#aceptasuspender").text("Suspender");
    $("#GuardarModificar").text("Guardar");
    $("#pronuevocargo").text("");
    $("#panelCreacionPersonal").css("display", "none");
    $("#panelSeleccionAction").css("display", "none");
    $("#panelCalendario").css("display", "none");
    $("#detalleactividad").remove();
    $("#panelPromocionUsuario").css("display", "none");
    $("#addactividad").text("(+)");
    $('input[name=descripcionNuevo]').val("");
    $('input[name=nombre1]').val("");
    $('input[name=nombre2]').val("");
    $('input[name=apepat]').val("");
    $('input').val("");
    $('input[name=ci]').val("");
    $("#asignacionHorarioActividad").css("display", "none");
    $('input[name=perfil]').val("");
    $("input[type=checkbox]").prop("checked", "");
    $("#panelAsignacionPerfiles").css("display", "none");
    $("#panelCreacionCargo").css("display", "none");
    $("#panelAsignacionHorario").css("display", "none");
    $("input[name=desc]").val("");
    $("input[name=color]").val("");
    $("#popupAddActividad").css("display", "none");
    $("select[name=tipoActividad] option:eq(0)").attr("selected", true);
    $("input[name=hrinicio]").val(1);
    $("input[name=hrfin]").val(1);
    $("input[name=mininicio]").val(0);
    $("input[name=minfin]").val(0);
    $("input[name=fecha_ini]").removeAttr("readonly");
    $("input[name=ci]").removeAttr("readonly");
    $("input[name=usrs]").removeAttr("readonly");
    $("input[name=readonly]").removeAttr("readonly");
    $("select[name=cago_jefe]").removeAttr("disabled");
    $("select[name=regional]").css("display", "none");
    $("#regional").css("display", "none");
    $("select[name=sucursal]").css("display", "none");
    $("#sucursal").css("display", "none");
    $("input[name=position]:first").attr("checked", "checked");
    $("div[data-class=dato]").css("display", "none");
    $("input[name=anos]").val("0");
    $("input[name=fecha_fin]").val("INDETERMINADO");
}
function cambiorango(elem) {
    $(elem).prev().prev().text($(elem).val());
    generarImagen();
}
function GuardarNuevo() {
    var node = diagram.selection.first();
    var data = node.data;
    var modelo = diagram.model;
    if ($("#panelCreacionCargo").css("display") == "block") {
        var idDpto = $("select[name=departamento] option:selected").val();
        var IdSucursal = $("select[name=sucursal] option:selected").val();
        var IdRegional = $("select[name=regional] option:selected").val();
        var id = 0;
        if (data.Cargo != "Sin Cargo") {
            id = data.key;
        }
        IdSucursal = IdSucursal == null || IdSucursal == 1 ? "0" : IdSucursal;
        IdRegional = IdRegional == null || IdRegional == 1 ? "0" : IdRegional;
        var staff = $("#staff").attr("checked");
        if (staff == "checked") {
            staff = "0";
        } else {
            staff = "1";
        }
        var descripcion = $("input[name=descripcionNuevo]").val();
        if (descripcion.length > 41) {
            alert("La descripcion del cargo no puede tener mas de 42 caracteres")
            $("input[name=descripcionNuevo]").css("background", "red");
        }
        var perfil = $("input[name=perfil]").val();
        var listadatos = "";
        var listadocs = "";
        if (descripcion != "" && perfil != "")
        {
            $("#lista-datos input").each(function() {
                if ($(this).attr("checked"))
                {
                    $("div[data-iddato=" + parseInt($(this).val()) + "]").css("display", "block");
                    listadatos += $(this).val() + ",";
                }
            });
            listadatos = listadatos.substring(0, listadatos.length - 1);
            $("#lista-docs input").each(function() {
                if ($(this).attr("checked"))
                {
                    $("div[data-iddato=" + parseInt($(this).val()) + "]").css("display", "block");
                    listadocs += $(this).val() + ",";
                }
            });
            listadocs = listadocs.substring(0, listadocs.length - 1);
            $.post(url, {proceso: "GuardarNuevo", Iddepartamento: idDpto, id: id, descripcion: descripcion, perfil: perfil,
                dependencia: data.parent, staff: staff, tipo: $("select[name=tccargo] option:selected").val(), IdSucursal: IdSucursal
                , IdRegional: IdRegional, listadatos: listadatos, listadocs: listadocs}, function(responsetext) {
                if (responsetext != "0") {
                    modelo.startTransaction("modified");
                    var lista = [];
                    if (id == 0) {
                        lista.push(data.key);
                    } else {
                        lista.push(responsetext);
                    }
                    while (lista.length > 0) {
                        var keyactual = lista[0];
                        lista.splice(0, 1);
                        for (i = 0; i < listaNodo.length; i++) {
                            if (listaNodo[i].parent == keyactual) {
                                lista.push(listaNodo[i].key);
                            }
                        }
                        var dataactual = modelo.findNodeDataForKey(keyactual);
                        if (idDpto > 0) {
                            modelo.setDataProperty(dataactual, "dpto", $("select[name=departamento] option:selected").text());
                            modelo.setDataProperty(dataactual, "iddep", idDpto);
                        } else {
                            modelo.setDataProperty(dataactual, "dpto", "GERENCIA GENERAL");
                            modelo.setDataProperty(dataactual, "iddep", 0.0);
                        }
                        if (IdSucursal > 0) {
                            modelo.setDataProperty(dataactual, "suc", $("select[name=sucursal] option:selected").text());
                            modelo.setDataProperty(dataactual, "idsucursal", IdSucursal);
                        } else {
                            modelo.setDataProperty(dataactual, "suc", "TODAS");
                            modelo.setDataProperty(dataactual, "idsucursal", 0.0);
                        }
                        if (IdRegional > 0) {
                            modelo.setDataProperty(dataactual, "reg", $("select[name=regional] option:selected").text());
                            modelo.setDataProperty(dataactual, "regional", IdRegional);
                        } else {
                            modelo.setDataProperty(dataactual, "suc", "TODAS");
                            modelo.setDataProperty(dataactual, "idsucursal", 0.0);
                        }
                    }
                    modelo.setDataProperty(data, "key", responsetext);
                    modelo.setDataProperty(data, "Cargo", descripcion);
                    modelo.setDataProperty(data, "listaUsuario", data.listaUsuario);
                    if (staff == 0) {
                        modelo.setDataProperty(data, "staff", [3, 2]);
                    } else {
                        modelo.setDataProperty(data, "staff", null);
                    }
                    modelo.commitTransaction("modified");
                }
                cancelPopUp()
            });
        }
        else
        {
            alert("rellene los campos");
            $("input[name=descripcionNuevo]").focus();
        }
    }
    if ($("#panelCreacionPersonal").css("display") == "block") {
        $("input").css("background", "#6598AE");
        $("input").css("border", "thin solid #597C93");
        var pass = $("input[name=pass]").val();
        var repass = $("input[name=repass]").val();
        var ci = $("input[name=ci]").val();
        if (ci.length == 0) {
            errores += "-El carnet es necesario\n";
            $("input[name=ci]").css("background", "red");
            $("input[name=ci]").css("border", "thin solid red");
        }
        if (isNaN(ci)) {
            errores += "-El carnet es incorrecto\n";
            $("input[name=ci]").css("background", "red");
            $("input[name=ci]").css("border", "thin solid red");
        }
        var nombre = $("input[name=nombre1]").val();
        if (nombre.length == 0) {
            errores += "-El nombre es necesario\n";
            $("input[name=nombre1]").css("background", "red");
            $("input[name=nombre1]").css("border", "thin solid red");
        }
        var apellidoP = $("input[name=apepat]").val();
        if (apellidoP.length == 0) {
            errores += "-El apellido paterno es necesario\n";
            $("input[name=apepat]").css("background", "red");
            $("input[name=apepat]").css("border", "thin solid red");
        }
        var ano = $("input[name=anos]").val();
        if (ano.length == 0) {
            errores += "-El año es necesario\n";
            $("input[name=anos]").css("background", "red");
            $("input[name=anos]").css("border", "thin solid red");
        }
        var usrs = $("input[name=usrs]").val();
        if (usrs.length == 0) {
            errores += "-El usuario es necesario\n";
            $("input[name=usrs]").css("background", "red");
            $("input[name=usrs]").css("border", "thin solid red");
        }
        if (pass.length == 0 && $("input[name=proceso]").val() != "modificarempleado") {
            errores += "-La contraseña es necesario\n";
            $("input[name=pass]").css("background", "red");
            $("input[name=pass]").css("border", "thin solid red");
        }
        if (repass != pass) {
            errores += "-La contraseña no coinciden\n";
            $("input[name=repass]").css("background", "red");
            $("input[name=repass]").css("border", "thin solid red");
        }
        if (isNaN(ano)) {
            errores += "-El año es incorrecto\n";
            $("input[name=anos]").css("background", "red");
            $("input[name=anos]").css("border", "thin solid red");
        }
        var fec = $("input[name=fecha_ini]").val();
        var regex = /[\w-\.]{2,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
        if (!regex.test($("input[name=email]").val().trim()) && $("input[name=email]").val().length > 0) {
            errores += "-La direccion de correo no es valida\n";
            $("input[name=email]").css("background", "red");
            $("input[name=email]").css("border", "thin solid red")
        }
        if (fec.length == 0) {
            errores += "-La fecha de ingreso es necesario\n";
            $("input[name=fecha_ini]").css("background", "red");
            $("input[name=fecha_ini]").css("border", "thin solid red");
        }
        errores += t;
        if (errores.length > 0) {
            alert(errores);
            errores = "";
            return;
        }

        $("input[name=cargoe]").val(data.key);
        var formData = new FormData($("#reg")[0]);
        $.ajax({
            url: url,
            type: 'POST',
            data: formData,
            mimeType: "multipart/form-data",
            contentType: false,
            cache: false,
            processData: false,
            success: function(response, textStatus, jqXHR)
            {
                if (response != "false") {
                    if ($("input[name=estado]").val() === 1) {
                        data = modelo.findNodeDataForKey(response);
                    }
                    var lista = data.listaUsuario;
                    lista.push({
                        ci: ci,
                        foto: urlfotoperfil,
                        idPersona: response,
                        nombre: nombre + " " + apellidoP,
                        salario: $("input[name=salario]").val,
                        suspendido: 0
                    });
                    if (data.idPersona == "0") {
                        modelo.startTransaction("insertar");
                        modelo.setDataProperty(data, "idPersona", response);
                        modelo.setDataProperty(data, " profesion", $("input[name=prof] option:selected").text());
                        modelo.setDataProperty(data, "nombre", nombre + " " + apellidoP);
                        modelo.setDataProperty(data, "cantusu", "1");
                        modelo.setDataProperty(data, "listaUsuario", lista);
                        if (urlfotoperfil.length > 0)
                            modelo.setDataProperty(data, "foto", urlfotoperfil);
                        modelo.commitTransaction("insertar");
                    } else {
                        modelo.startTransaction("modified");
                        modelo.setDataProperty(data, "cantusu", parseInt(data.cantusu) + 1);
                        modelo.setDataProperty(data, "listaUsuario", lista);
                        modelo.commitTransaction("modified");
                    }
                    cancelPopUp();
                } else {
                    alert("Erro del sistema Intente nuevamente");
                }
            },
            error: function(jqXHR, textStatus, errorThrown)
            {

            }
        });
    }
}
function openFile(event, elem, tipo) {
    elementopenfile = elem;
    var input = event.target;
    var reader = new FileReader();
    tipofile = tipo;
    reader.onload = function()
    {
        var dataURL = reader.result;
        urlfotoperfil = dataURL;
        if (tipofile == 1) {
            $("#fotoEmp").attr("src", dataURL);
        }
        if (tipofile == 2) {
            $(elementopenfile).next().next().css("display", "inline-block");
            $(elementopenfile).next().next().data("contenido", dataURL);
            $(elementopenfile).next().next().data("tipo", 1);
            $(elementopenfile).prev().text($(eleme).val());
        }
        if (tipofile == 3) {
            $(elementopenfile).next().css("display", "inline-block");
            $(elementopenfile).next().data("contenido", dataURL);
            $(elementopenfile).next().data("tipo", 1);
        }
    }
    reader.readAsDataURL(input.files[0]);
}
function eliminarActividadlista(ele, id) {
    $.post(url, {proceso: "eliminarActividad", id: id}, function(responsetext) {
        if (responsetext == "true") {
            $(ele).parent().remove();
        } else {
            alert("Error en el servidor intente nuevamente");
        }
    });
}
function eliminarActividad(id, span) {
    $.post(url, {proceso: "eliminarActividadCargo", id: id}, function(responsetext) {
        if (responsetext == "true")
            cargarcalendario();
    });
}
function seleccionarUsuario(ele) {
    usuarioselect = $(ele).find("option:selected").index();
    var node = diagram.selection.first();
    var data = node.data;
    var lista = data.listaUsuario[usuarioselect];
    $(ele).parent().find("li").css("color", "black");
    $(ele).css("color", "blue");
    $(ele).data("seleccionado", "1");
    $("#pronombre").text(lista.nombre);
    $("#procargo").text(lista.Cargo);
    $("#proprofesion").text(lista.profesion);
    $("#prosueldo").val(lista.salario);
    var foto = lista.foto;
    if (foto == "null")
        foto = "../img/imagen3.jpg";
    else
        foto = "ftp://postulado:oracle123@192.168.0.101/" + lista.ci + "/" + lista.foto;
    $("#fotou").html("<img src='" + foto + "' style='width:100%; height:100%;'>");
}
function eventoDiaCalentadio() {
    $(".diasC").click(function() {
        $("#detalleactividad").remove();
        var diaclick = $(this);
        $("#asignacionHorarioActividad").css("display", "none");
        $("#panelCalendario").append("<div id='detalleactividad'>\n\
                                    <span class='subTituloSubContenedor' \n\
                                    style='font-size: 14px; font-weight: bolder; '>Actividades </span>" + diaclick.data("detalle") + "</div>");
        $("#detalleactividad").css({
            position: "absolute",
            top: diaclick.position().top,
            background: "white",
            left: diaclick.position().left,
            width: diaclick.width(), //240
            height: diaclick.height()
        });
        $("#detalleactividad").click(function() {
            $("#detalleactividad").animate({
                width: 0,
                height: 0
            }, 500, function() {
                $("#detalleactividad").remove();
            });
        });
        $("#detalleactividad").animate({
            width: 240,
            height: 150
        }, 500, function() {

        });
    });
}
function cambiarMes(tipo) {
    if (tipo == 1) {
        mes--;
        if (mes == -1) {
            mes = 11;
            ano--;
        }
    } else {
        mes++;
        if (mes == 12) {
            ano++;
            mes = 0;
        }
    }
    $("#fechaCalendario").html(meses[mes] + " DEL " + ano);
    cargarcalendario();
}
function cargarcalendario() {
    var node = diagram.selection.first();
    var data = node.data;
    $.post(url, {proceso: "cargarCalendario", idcargo: data.key, ano: ano, mes: mes}, function(responsetext) {
        $('#tablacalendario').html(responsetext);
        dragAndDrop();
        eventoDiaCalentadio();
    });
}
function dragAndDrop() {
    $('.draggable').draggable({
        helper: "clone",
        revert: "invalid",
        start: function(evento, ui) {
            $(this).css({
                opacity: "0"
                , cursor: "-moz-grabbing"
            });
        },
        stop: function(evento, ui) {
            $(this).css({
                opacity: "1"
                , cursor: "-moz-grab",
            });
        }
    });
    $('.contenedor50, .diasC').droppable({
        tolerance: "intersect",
        over: function() {
            backgroundActual = $(this).css("background-color");
            $(this).css({
                background: "#395156"
            });
        },
        out: function(event, ui) {
            $(this).css({
                background: backgroundActual
            });
        },
        drop: function(event, ui) {
            var elementoMovimiento = $(ui.draggable);
            if ($("#panelAsignacionPerfiles").css("display") == "block") {
                var idperfil = elementoMovimiento.data("idrol");
                if (elementoMovimiento.data("estado") != $(this).data("estado"))
                {
                    agregarPerfil(idperfil);
                }
            }
            if ($("#panelAsignacionHorario").css("display") == "block") {
                var idHorario = elementoMovimiento.data("idhorario");
                if (elementoMovimiento.data("estado") != $(this).data("estado"))
                {
                    agregarHorario(idHorario);
                }
            }
            if ($("#panelCalendario").css("display") == "block") {
                idactividad = elementoMovimiento.data("idactividad");
                if (elementoMovimiento.data("estado") != $(this).data("estado"))
                {
                    dia = $(this).data("dia");
                    tdselect = $(this);
                    $("#asignacionHorarioActividad").css("display", "block");
                }
            }
        }
    });
}
function agregarPerfil(idperfil) {
    var node = diagram.selection.first();
    var data = node.data;
    $.post(url, {proceso: "agregarPerfil", idperfil: idperfil, idcargo: data.key}, function(responsetext)
    {
        $('#panelAsignacionPerfiles').html(responsetext);
        dragAndDrop();
        contenedroHeight($('#panelAsignacionPerfiles'));
    });
}
function cancelarretiro() {
    $("input[name=pop1_motivo]").val("");
    $("input[name=pop1_observacion]").val("");
    $("#pop1").css("display", "none");
}
function agregarHorario(idhorario) {
    var node = diagram.selection.first();
    var data = node.data;
    $.post(url, {proceso: "agregarhorario", idhorario: idhorario, idcargo: data.key}, function(responsetext)
    {
        $('#panelAsignacionHorario').html(responsetext);
        dragAndDrop();
        contenedroHeight($('#panelAsignacionHorario'));
    });
}
function agregarActividad() {
    var node = diagram.selection.first();
    var data = node.data;
    var horainicio = $("input[name=hrinicio]").val();
    var horafin = $("input[name=hrfin]").val();
    var mininicio = $("input[name=mininicio]").val();
    var minfin = $("input[name=minfin]").val();
    if (horainicio < 0 || horafin < 0 || mininicio < 0 || minfin < 0) {
        alert("No puede agregar hora negativa");
        return;
    }
    if (horafin > 23 || horainicio > 23) {
        alert("El dia solo tiene 24 horas contando desde el 0");
        return;
    }
    if (minfin > 59 || mininicio > 59) {
        alert("La hora solo tiene 60 min contando desde el 0");
        return;
    }
    $.post(url, {proceso: "agregaractividad", idact: idactividad, dia: dia, mes: mes
        , ano: ano, hini: horainicio, hfin: horafin, mfin: minfin, mini: mininicio, idcargo: data.key}, function(responsetext) {
        var json = $.parseJSON(responsetext);
        $("td[data-dia=" + dia + "]").append(json[0]);
        var act = $("td[data-dia=" + dia + "]").data("detalle");
        if (act.length == 0)
            act = "";
        $("td[data-dia=" + dia + "]").data("detalle", act + json[1]);
        $("#asignacionHorarioActividad").css("display", "none");
        $("input[name=hrinicio]").val(1);
        $("input[name=hrfin]").val(1);
        $("input[name=mininicio]").val(0);
        $("input[name=minfin]").val(0);
    });
}
function cambiopersonasalario(elemento) {
    var index = $(elemento).find("option:selected").index();
    var node = diagram.selection.first();
    var lista = node.data.listaUsuario;
    $("#salarioviejo").val(lista[index].salario);
    if ($(elemento).data("tipo") == "1") {
        if (lista[index].suspendido == 1) {
            $("#aceptasuspender").text("Habilitar");
        } else {
            $("#aceptasuspender").text("Suspender");
        }
    }
}
function GuardarDependencia() {
    var node = nodoreferencia2;
    var modelo = diagram.model;
    var selnode = diagram.selection.first();
    var regional = $("select[name=regional2] option:selected").val();
    var departamento = $("select[name=departamento2] option:selected").val();
    var sucursal = $("select[name=sucursal2] option:selected").val();
    regional = typeof regional == "undefined" ? 0 : parseInt(regional);
    sucursal = typeof sucursal == "undefined" ? 0 : parseInt(sucursal);
    departamento = typeof departamento == "undefined" ? 0 : parseInt(departamento);
    var idreferencia = node.data.key;
    var idcargo = selnode.data.key;
    $.post(url, {proceso: "cambiarReferencia", regional: regional, departamento: departamento, sucursal: sucursal, cargo: idcargo, referencia: idreferencia}, function(res) {
        if (res == "true") {
            var lista = [];
            lista.push(selnode.data.key)
            modelo.startTransaction("modified");
            while (lista.length > 0) {
                var keyactual = lista[0];
                lista.splice(0, 1);
                for (i = 0; i < listaNodo.length; i++) {
                    if (listaNodo[i].parent == keyactual) {
                        lista.push(listaNodo[i].key);
                    }
                }
                var dataactual = modelo.findNodeDataForKey(keyactual);
                if (departamento > 0) {
                    modelo.setDataProperty(dataactual, "dpto", $("select[name=departamento2] option:selected").text());
                    modelo.setDataProperty(dataactual, "iddep", departamento);
                } else {
                    modelo.setDataProperty(dataactual, "dpto", "TODAS");
                    modelo.setDataProperty(dataactual, "iddep", 0.0);
                }
                if (sucursal > 0) {
                    modelo.setDataProperty(dataactual, "suc", $("select[name=sucursal2] option:selected").text());
                    modelo.setDataProperty(dataactual, "idsucursal", sucursal);
                } else {
                    modelo.setDataProperty(dataactual, "suc", "TODAS");
                    modelo.setDataProperty(dataactual, "idsucursal", 0.0);
                }
                if (regional > 0) {
                    modelo.setDataProperty(dataactual, "reg", $("select[name=regional2] option:selected").text());
                    modelo.setDataProperty(dataactual, "regional", regional);
                } else {
                    modelo.setDataProperty(dataactual, "suc", "TODAS");
                    modelo.setDataProperty(dataactual, "idsucursal", 0.0);
                }
            }

            modelo.commitTransaction("modified");
            var link = selnode.findTreeParentLink();
            if (link !== null) {
                link.fromNode = node;
            } else {
                diagram.toolManager.linkingTool.insertLink(node, node.port, selnode, selnode.port);
            }
            $("#cambioReferencia").css("display", "none");
        } else {
            alert(res);
        }
    });
}
function addActividades(elemento) {
    if ($("#popupAddActividad").css("display") == "block")
    {
        $(elemento).text("(+)");
        $("#popupAddActividad").css("z-index", 2);
        $("#popupAddActividad").animate({
            left: ($('#nodoPopUp').position().left + $('#nodoPopUp').outerWidth()) - $("#popupAddActividad").outerWidth() - 10,
        }, 500, function() {
            $("#popupAddActividad").css("display", "none");
        });
    }
    else
    {
        $(elemento).text("(-)");
        $("#popupAddActividad").css("display", "block");
        $("#popupAddActividad").animate({
            left: ($('#nodoPopUp').position().left + $('#nodoPopUp').outerWidth()),
        }, 500, function() {
            $("#popupAddActividad").css("z-index", 5);
        });
        $("input[name=desc]").val("");
        $("input[name=color]").val("");
        $("select[name=tipoActividad] option:eq(0)").attr("selected", true);
    }
}
function cancelarNuevaActividad() {
    $("#addactividad").text("(+)");
    $("#popupAddActividad").css("z-index", 2);
    $("#popupAddActividad").animate({
        left: ($('#nodoPopUp').position().left + $('#nodoPopUp').outerWidth()) - $("#popupAddActividad").outerWidth() - 10,
    }, 500, function() {
        $("#popupAddActividad").css("display", "none");
    });
    $("select[name=tipoActividad] option:eq(0)").attr("selected", true);
    $("input[name=desc]").val("");
    $("input[name=color]").val("");
}
function retirar() {
    var observacion = $("input[name=pop1_observacion]").val();
    var fecha = $("input[name=pop1_fecha]").val();
    var tipo = $("select[name=pop1_tipo] option:selected").val();
    var id = $("#listausuarioinc3 option:selected").val();
    $.post(url, {proceso: "retirar", observacion: observacion, fecha: fecha, tipo: tipo, id: id}, function(resp) {
        var node = diagram.selection.first();
        var data = node.data;
        var modelo = diagram.model;
        var listausuario = data.listaUsuario;
        listausuario.splice($("select[name=pop1_tipo] option:selected").index(), 1);
        modelo.startTransaction("modified");
        alert("El empleado " + $("#listausuarioinc3 option:selected").text() + " fue retirado por " + observacion)
        if (listausuario.length === 0) {
            modelo.setDataProperty(data, " profesion", "N/A");
            modelo.setDataProperty(data, "foto", "null");
            modelo.setDataProperty(data, "idPersona", "0");
            modelo.setDataProperty(data, "nombre", "Sin Empleado");
            modelo.setDataProperty(data, "salario", 0);
            modelo.setDataProperty(data, "listaUsuario", []);
            modelo.setDataProperty(data, "cantusu", 0);
        } else {
            modelo.setDataProperty(data, "listaUsuario", listausuario);
            modelo.setDataProperty(data, " profesion", listausuario[0].profesion);
            modelo.setDataProperty(data, "foto", listausuario[0].foto);
            modelo.setDataProperty(data, "idPersona", listausuario[0].idPersona);
            modelo.setDataProperty(data, "nombre", listausuario[0].nombre);
            modelo.setDataProperty(data, "salario", listausuario[0].salario);
            modelo.setDataProperty(data, "listaUsuario", listausuario[0].profesion);
            modelo.setDataProperty(data, "cantusu", listausuario.length);
        }
        modelo.commitTransaction("modified");
        $("input[name=pop1_observacion]").val("");
        $("#pop1").css("display", "none");
    });
}
function CrearActividad() {
    $("#addactividad").text("(+)");
    var desc = $("input[name=desc]").val();
    var color = $("input[name=color]").val();
    var tipoActividad = $("select[name=tipoActividad] option:selected").val();
    $.post(url, {proceso: "crearActividad", desc: desc, color: color, tipo: tipoActividad}, function(responsetext) {
        $("#panelCalendario .contenedor20").append(responsetext);
        dragAndDrop();
        $("#mas").text("(+)");
        $("#popupAddActividad").css("z-index", 2);
        $("#popupAddActividad").animate({
            left: ($('#nodoPopUp').position().left + $('#nodoPopUp').outerWidth()) - $("#popupAddActividad").outerWidth() - 10,
        }, 500, function() {
            $("#popupAddActividad").css("display", "none");
        });
        $("select[name=tipoActividad] option:eq(0)").attr("selected", true);
        $("input[name=desc]").val("");
        $("input[name=color]").val("");
    });
}
function abrirfungible(ele) {//campoFingible
    var elemeneto = $(ele);
    if (elemeneto.data("estado") == "cerrado")
    {
        $("div[name=contenedorDato]").data("estado", "cerrado");
        $("div[name=contenedorDato]").css("display", "none");
        $("#campoFingible").slideDown("slow", function() {
            $(ele).data("estado", "abrir");
        });
    }
    else
    {
        $("#campoActivo").slideUp("slow", function() {
            $(ele).data("estado", "cerrado");
        });
    }
}
function abriractivos(ele) {
    var elemeneto = $(ele);
    if (elemeneto.data("estado") == "cerrado")
    {
        $("div[name=contenedorDato]").data("estado", "cerrado");
        $("div[name=contenedorDato]").css("display", "none");
        $("#campoActivo").slideDown("slow", function() {
            $(ele).data("estado", "abrir");
        });
    }
    else
    {
        $("#campoActivo").slideUp("slow", function() {
            $(ele).data("estado", "cerrado");
        });
    }
}
function abrirArchivo(ele) {
    var nombre = $(ele).data("contenido");
    var ci = $(ele).data("ci");
    var tipo = $(ele).data("tipo");
    abrirdocumento(nombre, ci, tipo);
}
function abrirdatosDocumentos(ele) {
    var left = -556;
    if ($(ele).data("estado") == 0) {
        $(ele).data("estado", 1);
    } else {
        $(ele).data("estado", 0);
        left = 0;
    }

    $("#datosextra").animate({
        left: left,
    }, 600, function() {
    });
}
function addtelf() {
    numtelf++;
    $.post(url, {proceso: "telefonosDisponible"}, function(responsetext) {
        var telf = "<select style='margin:6px 5px;' name='telefono" + numtelf + "' class='grande' >" + responsetext + "</select><input type='number' style='margin:5px;'   step='0.5'  name='montotelf" + numtelf + "' class='pequeño' value='0'/><span class='negrilla' onclick=\"quittelf(this)\">(x)</span><br>";
        $("#campotelf").append(telf);
    });
}
function addcuent() {
    numcuent++;
    var telf = "<input type='number'  name='cuenta" + numcuent + "' style='margin: 2px;' class='chico' required='true'/><input type='text'  value=''  placeholder='Nombre del Banco' name='banco" + numcuent + "' class='mediano' style='margin: 3px;'/><span class='negrilla' onclick=\"quitcuent(this)\">(x)</span>";
    $("#campocuent").append(telf);
}
function quittelf(span) {
    numtelf--;
    $(span).prev().remove();
    $(span).prev().remove();
    $(span).prev().remove();
    $(span).remove();
}
function quitcuent(span) {
    numcuent--;
    $(span).prev().remove();
    $(span).prev().remove();
    $(span).remove();
}
function abrirCreacionProfesion(ele) {
    var elemento = $(ele);
    if (elemento.data("tipo") === 0) {
        elemento.data("tipo", "1");
        elemento.text("(-)");
        $("#contenedorProfesion").css({
            display: "block",
            position: "absolute",
            top: (elemento.position().top + elemento.height() - 10),
            left: elemento.position().left + 25
        });
    } else {
        elemento.data("tipo", 0);
        elemento.text("(+)");
        $("#contenedorProfesion").css("display", "none");
        $("#contenedorProfesion input").val("");
    }
}
function init() {
    var $1 = go.GraphObject.make;
    diagram = $1(go.Diagram, "myDiagramDiv",
            {initialContentAlignment: go.Spot.Center,
                initialAutoScale: go.Diagram.Uniform,
                validCycle: go.Diagram.CycleDestinationTree,
                maxSelectionCount: 1,
                allowCopy: false,
                layout:
                        $1(go.TreeLayout,
                                {
                                    angle: 90,
                                    layerSpacing: 180,
                                    alternateAngle: 90,
                                }),
                "undoManager.isEnabled": true
            });
    nodoDetalle = $1(go.Node, "Auto",
            {doubleClick: nodeDoubleClick, defaultAlignment: go.Spot.Left},
    {
        mouseDragEnter: function(e, node, prev) {
            var diagram = node.diagram;
            var selnode = diagram.selection.first();
            if (!mayWorkFor(selnode, node))
                return;
            var shape = node.findObject("SHAPE");
            if (shape) {
                shape._prevFill = shape.fill;
                shape.fill = "darkred"; //color cuando otro nodo pasa por ensima
            }
        },
        mouseDragLeave: function(e, node, next) {
            var shape = node.findObject("SHAPE");
            if (shape && shape._prevFill) {
                shape.fill = shape._prevFill;
            }
        },
        mouseDrop: function(e, node) {
            var diagram = node.diagram;
            var selnode = diagram.selection.first();
            if (mayWorkFor(selnode, node)) {
                $("#cambioReferencia").css("display", "block");
                $("#mensajeAceptacion").text("Cambio Dependencia");
                textoSeleccionado = "2";
                nodoreferencia = node;
                nodoreferencia2 = node;
                arregloCheck = [];
                seleccionarDepRegSuc();
                $("#nodoPopUp").css("display", "none");
            }
        },
        mouseEnter: mouseEnter,
        mouseLeave: mouseLeave
    },
    $1(go.Shape, "RoundedRectangle", {width: 350, fill: "red", cursor: "pointer"}, new go.Binding("strokeDashArray", "staff"),
            new go.Binding("fill", "nombre", function(nodo, algo) {
                var node = algo.part;
                var data = node.data;
                var color = "";
                if (data.staff != null) {
                    color = "#0DF709";
                } else {
                    color = "#227A1F";
                }
                if (nodo == "Sin Empleado") {
                    color = "#929691";
                }
                return color;
            })
            ),
            $1(go.Shape, "circle", {width: 30,
                alignment: go.Spot.TopRight, cursor: "pointer", stroke: null}
            , new go.Binding("fill", "cantusu", function(v, algo) {
                var node = algo.part;
                var data = node.data;
                var color = "";
                if (data.staff != null) {
                    color = "#0DF709";
                } else {
                    color = "#227A1F";
                }
                if (data.nombre == "Sin Empleado") {
                    color = "#929691";
                }
                if (data.cantusu > 1) {
                    color = "red"
                }
                return color;
            })),
            $1(go.TextBlock, {alignment: go.Spot.TopRight, margin: 12, stroke: "white", font: "14pt", cursor: "pointer"}
            , new go.Binding("text", "cantusu", function(v) {
                var color = null;
                if (v > 1) {
                    color = v;
                }
                return color;
            })),
            $1(go.Panel, "Vertical",
                    $1(go.TextBlock, {margin: 5}, new go.Binding("text", "Cargo")),
                    $1(go.Panel, "Horizontal",
                            $1(go.Picture,
                                    {
                                        maxSize: new go.Size(100, 100),
                                        margin: new go.Margin(6, 8, 6, 10),
                                    },
                                    new go.Binding("source", "foto", function(f) {
                                        if (f.length === 0) {
                                            return "../img/imagen3.jpg";
                                        } else {
                                            return f;
                                        }
                                    })
                                    ),
                            $1(go.Panel, "Vertical", {defaultAlignment: go.Spot.Left},
                            $1(go.TextBlock, {margin: 1}, "Nombre")
                                    , $1(go.TextBlock, {margin: 1}, new go.Binding("text", "nombre"))
                                    , $1(go.TextBlock, {margin: 1}, "Profesion")
                                    , $1(go.TextBlock, {margin: 1}, new go.Binding("text", "profesion"))
                                    , $1(go.TextBlock, {margin: 1}, "Departamento")
                                    , $1(go.TextBlock, {margin: 1}, new go.Binding("text", "dpto"))
                                    , $1(go.TextBlock, {margin: 1}, "Regional")
                                    , $1(go.TextBlock, {margin: 1}, new go.Binding("text", "reg"))
                                    , $1(go.TextBlock, {margin: 1}, "Sucursal")
                                    , $1(go.TextBlock, {margin: 1}, new go.Binding("text", "suc"))
                                    )
                            )
                    ),
            {
                contextMenu:
                        $1(go.Adornment, "Vertical",
                                $1("ContextMenuButton",
                                        $1(go.TextBlock, "Propiedades"),
                                        {click: abrirPopUp})
                                )
            }
    );
    nodoSimple = $1(go.Node, "Auto",
            $1(go.Shape, "RoundedRectangle", {width: 200, fill: "red", cursor: "pointer"}, new go.Binding("strokeDashArray", "staff"),
                    new go.Binding("fill", "nombre", function(nodo, algo) {
                        var node = algo.part;
                        var data = node.data;
                        var color = "";
                        if (data.staff != null) {
                            color = "#0DF709";
                        } else {
                            color = "#227A1F";
                        }
                        if (nodo == "Sin Empleado") {
                            color = "#929691";
                        }
                        return color;
                    })),
            $1(go.Panel, "Vertical",
                    $1(go.TextBlock, {margin: 5}, new go.Binding("text", "Cargo")),
                    $1(go.Panel, "Vertical", {defaultAlignment: go.Spot.Left},
                    $1(go.TextBlock, {margin: 1}, new go.Binding("text", "nombre"))
                            )

                    )
            );
    diagram.linkTemplate =
            $1(go.Link, {routing: go.Link.AvoidsNodes, corner: 10},
            $1(go.Shape, {strokeWidth: 3}, new go.Binding("strokeDashArray", "staff")),
                    $1(go.Shape, {toArrow: "Standard"})
                    );
}
function nodeDoubleClick(e, obj) {
    var clicked = obj.part;
    if (clicked !== null) {
        var thisemp = clicked.data;
        if (thisemp.Cargo === "Sin Cargo") {
            alert("Cree el Cargo Primero");
            return;
        }
        diagram.startTransaction("add employee");
        var nextkey = (diagram.model.nodeDataArray.length + 1).toString();
        var newemp = {key: "n" + nextkey, nombre: "Sin Empleado", Cargo: "Sin Cargo", foto: "../img/imagen3.jpg", dpto: "Sin Departamento", profesion: "Sin Profesion", cantusu: 0, regional: thisemp.regional, iddep: thisemp.iddep, idsucursal: thisemp.idsucursal, parent: thisemp.key, listaUsuario: []};
        diagram.model.addNodeData(newemp);
        diagram.commitTransaction("add employee");
    }
}
